/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package co.edu.univalle.logica;

import co.edu.univalle.modelo.Clientes;
import co.edu.univalle.persistencia.IClienteDAO;
import java.util.List;
import javax.ejb.EJB;
import javax.ejb.Stateless;

/**
 *
 * @author DILOVE
 */
@Stateless
public class ClienteLogica implements ClienteLogicaLocal {
    @EJB
    private IClienteDAO clienteDAO;

    @Override
    public void registrar(Clientes cliente) throws Exception {
        if(cliente==null){
            throw new Exception("El cliente no tiene Información");
        }
        Clientes objCliente = clienteDAO.consultarPorCedula(cliente.getCliCedula());
        if(objCliente != null){
            throw new Exception("El cliente ya Existe");
        }
        if(cliente.getCliNombre()==null || cliente.getCliNombre().equals("")){
            throw new Exception("El nombre no puede ser vacío");
        }
        clienteDAO.registrar(cliente);
    }

    @Override
    public void modificar(Clientes cliente) throws Exception {
        if(cliente==null){
            throw new Exception("El cliente no tiene Información");
        }
        Clientes objCliente = clienteDAO.consultarPorCedula(cliente.getCliCedula());
        if(objCliente == null){
            throw new Exception("El cliente ya No Existe");
        }
        if(cliente.getCliNombre()==null || cliente.getCliNombre().equals("")){
            throw new Exception("El nombre no puede ser vacío");
        }
        clienteDAO.modificar(cliente);
    }

    @Override
    public void eliminar(Clientes cliente) throws Exception {
        if(cliente==null){
            throw new Exception("El cliente no tiene Información");
        }
        Clientes objCliente = clienteDAO.consultarPorCedula(cliente.getCliCedula());
        if(objCliente==null){
            throw new Exception("El cliente a eliminar no existe");
        }
        clienteDAO.eliminar(objCliente);
    }

    @Override
    public List<Clientes> consultar() throws Exception {
        return clienteDAO.consultar();
    }

    @Override
    public Clientes consultarPorDocumento(Long documento) throws Exception {
        if(documento==null || documento==0){
            throw new Exception("El documento es obligatorio");
        }
        return clienteDAO.consultarPorCedula(documento);
    }
    
}
